﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DAO
{
    public class AtividadeHistoricoDAO
    {
        #region Leitores

        public static List<AtividadeHistorico> Listar(int eventoID, int atividadeID, int pessoaID)
        {
            PersistenciaContainer bco = new PersistenciaContainer();
            List<AtividadeHistorico> objs = (from a in bco.AtividadeHistoricoes where a.eventoID == eventoID select a).ToList();


            if (atividadeID != 0)
            {
                objs = objs.Where(g => g.atividadeID == atividadeID).ToList();
            }

            if (pessoaID != 0)
            {
                objs = objs.Where(g => g.pessoaID == pessoaID).ToList();
            }

            return objs;
        }

        #endregion

        #region Modificadores
        public static void Salvar(AtividadeHistorico objNovo)
        {
            try
            {
                PersistenciaContainer bco = new PersistenciaContainer();
                if (objNovo.ID == 0)
                {
                    bco.AtividadeHistoricoes.AddObject(objNovo);
                    bco.SaveChanges();
                }

                else
                {
                    AtividadeHistorico objOLD = bco.AtividadeHistoricoes.FirstOrDefault(e => e.eventoID == objNovo.eventoID && e.ID == objNovo.ID);

                    if (objOLD != null)
                    {
                        objOLD.eventoID = objNovo.eventoID;
                        objOLD.atividadeID = objNovo.atividadeID;
                        objOLD.pessoaID = objNovo.pessoaID;
                        objOLD.atividadeStatusID = objNovo.atividadeStatusID;
                        objOLD.descricao = objNovo.descricao;
                        objOLD.data = objNovo.data;

                        bco.SaveChanges();
                    }
                    else
                        throw new Exception("AtividadeHistorico não localizada!");
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
        public static void Deletar(int eventoID, int id)
        {
            try
            {
                PersistenciaContainer bco = new PersistenciaContainer();

                Categoria obj = bco.Categorias.FirstOrDefault(g => g.eventoID == eventoID && g.ID == id);

                bco.Categorias.DeleteObject(obj);
                bco.SaveChanges();
            }
            catch (Exception)
            {
                throw;
            }
        }
        #endregion

        #region Validadores

        #endregion
    }
}
